package com.gobang.domain.vo;

import lombok.Data;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 匹配响应视图对象
 * 用于返回用户加入匹配队列后的状态信息
 *
 * @author gobang-team
 * @since 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MatchResponseVO {

    /**
     * 是否成功加入队列
     * true表示成功加入匹配队列，false表示加入失败
     */
    @JsonProperty("success")
    private Boolean success;

    /**
     * 队列位置
     * 用户在匹配队列中的当前位置，从1开始计数
     * 位置越小表示越早加入队列，越早被匹配
     */
    @JsonProperty("queuePosition")
    private Integer queuePosition;

    /**
     * 预估等待时间
     * 根据当前队列状况和历史数据预估的等待时间，单位：秒
     * 该时间为估算值，实际匹配时间可能有所差异
     */
    @JsonProperty("estimatedWaitTime")
    private Long estimatedWaitTime;

    /**
     * 当前队列大小
     * 当前匹配队列中等待的用户总数
     */
    @JsonProperty("queueSize")
    private Integer queueSize;

    /**
     * 匹配状态描述
     * 用于向用户展示当前的匹配状态信息
     */
    @JsonProperty("statusMessage")
    private String statusMessage;
} 